/**
 * 
 */
package com.dalonedrau.jogl.engine;

import java.awt.Color;
import java.nio.FloatBuffer;

import com.dalonedrau.jogl.opengl.ui.PanningMap;

/**
 * @author Donald
 */
public interface GlobalConsts {
	/** the number of bytes in a float. */
	int					BYTES_PER_FLOAT				= Float.SIZE
																	/ Byte.SIZE;
	/** the distance along the z-axis a child is above its parent. */
	final double		CHILD_STEP					= 0.0001d;
	/** the color ochre with 50% transparency. */
	final Color			COL_OCHRE_TRANS				= new Color(204,
																	119, 34,
																	128);
	/** a translucent blue background, used for the SNES border. */
	float[]				COL_SNES_BORDER				= new Color(33, 32,
																	132,
																	242)
																	.getComponents(null);
	/** a translucent blue background, used for the SNES border. */
	float[]				COL_SNES_BORDER_2			= new Color(40, 90,
																	164,
																	242)
																	.getComponents(null);
	/** a translucent blue background, used for the SNES border. */
	float[]				COL_TOOLTIP_BORDER			= new Color(19, 21,
																	10,
																	242)
																	.getComponents(null);
	/** a translucent blue background, used for the VX No Edge border. */
	float[]				COL_VX_NO_EDGE				= new Color(40, 90,
																	164,
																	128)
																	.getComponents(null);
	/** buffer defining the color whitesmoke. used for the GL instance. */
	final FloatBuffer	COL_WHITESMOKE				= FloatBuffer
																	.wrap(new float[] {
																	0.960784f,
																	0.960784f,
																	0.960784f,
																	0.375f });
	/** buffer defining the color liver. used for the GL instance. */
	final FloatBuffer	COLFB_LIVER					= FloatBuffer
																	.wrap(new float[] {
																	0.325490f,
																	0.294118f,
																	0.309804f,
																	1f });
	/** buffer defining the color sepia. used for the GL instance. */
	final FloatBuffer	COLFB_OCHRE					= FloatBuffer
																	.wrap(new float[] {
																	0.8f,
																	0.466667f,
																	0.133333f,
																	1f });
	/** buffer defining the color sepia. used for the GL instance. */
	final FloatBuffer	COLFB_SEPIA					= FloatBuffer
																	.wrap(new float[] {
																	0.439216f,
																	0.258824f,
																	0.078431f,
																	1f });
	/** the bottom left corner. */
	int					CORNER_00BOTTOM_LEFT		= 0;
	/** the bottom corner. */
	int					CORNER_01BOTTOM				= 1;
	/** the bottom right corner. */
	int					CORNER_02BOTTOM_RIGHT		= 2;
	/** the left corner. */
	int					CORNER_03LEFT				= 3;
	/** the right corner. */
	int					CORNER_04RIGHT				= 4;
	/** the top left corner. */
	int					CORNER_05TOP_LEFT			= 5;
	/** the top corner. */
	int					CORNER_06TOP				= 6;
	/** the top right corner. */
	int					CORNER_07TOP_RIGHT			= 7;
	/** the bottom left corner. */
	int					CORNER_08_REV_BOTTOM_LEFT	= 8;
	/** the bottom corner. */
	int					CORNER_09_REV_BOTTOM		= 9;
	/** the bottom right corner. */
	int					CORNER_10_REV_BOTTOM_RIGHT	= 10;
	/** the left corner. */
	int					CORNER_11_REV_LEFT			= 11;
	/** the right corner. */
	int					CORNER_12_REV_RIGHT			= 12;
	/** the top left corner. */
	int					CORNER_13_REV_TOP_LEFT		= 13;
	/** the top corner. */
	int					CORNER_14_REV_TOP			= 14;
	/** the top right corner. */
	int					CORNER_15_REV_TOP_RIGHT		= 15;
	/** the direction North. */
	int					DIR_00_NORTH				= 0;
	/** the direction North-NorthEast. */
	int					DIR_01_NORTH_EAST			= 1;
	/** the direction East. */
	int					DIR_02_EAST					= 2;
	/** the direction South-SouthEast. */
	int					DIR_03_SOUTH_EAST			= 3;
	/** the direction South. */
	int					DIR_04_SOUTH				= 4;
	/** the direction South-SouthWest. */
	int					DIR_05_SOUTH_WEST			= 5;
	/** the direction West. */
	int					DIR_06_WEST					= 6;
	/** the direction North-NorthWest. */
	int					DIR_07_NORTH_WEST			= 7;
	/** no direction. */
	int					DIR_NONE					= -1;
	/** multiplying by this number is the same as dividing by 100. */
	float				DIV_100						= 0.01f;
	/** multiplying by this number is the same as dividing by 180. */
	float				DIV_180						= 0.005555555556f;
	/** multiplying by this number is the same as dividing by 2. */
	float				DIV_2						= 0.5f;
	/** multiplying by this number is the same as dividing by 4. */
	float				DIV_4						= 0.25f;
	/** the alpha value applied for 16% fade. */
	float				FADE_16						= 0.1667f;
	/** the alpha value applied for 33% fade. */
	float				FADE_33						= 0.3333f;
	/** the alpha value applied for 50% fade. */
	float				FADE_50						= 0.5f;
	/** the alpha value applied for 66% fade. */
	float				FADE_66						= 0.6667f;
	/** the alpha value applied for 83% fade. */
	float				FADE_83						= 0.8333f;
	/** the font Fairlight, 12 pt. */
	String				FONT_FAIRLIGHT_12			= "fairlight_12";
	/** the font Lunchtime Doubly So, 16 pt. */
	String				FONT_LUNCHDS_16				= "lunchds_16";
	/** the font Lunchtime Doubly So, 18 pt. */
	String				FONT_LUNCHDS_18				= "lunchds_18";
	/** the font Lunchtime Doubly So, 24 pt. */
	String				FONT_LUNCHDS_24				= "lunchds_24";
	/** the font Press Start, 16 pt. */
	String				FONT_PRESSSTART_16			= "pressstart_16";
	/** the font Press Start, 18 pt. */
	String				FONT_PRESSSTART_18			= "pressstart_18";
	/** female. */
	int					GENDER_FEMALE				= 1;
	/** male. */
	int					GENDER_MALE					= 0;
	/** gender possessive strings. */
	char[][]			GENDER_POSSESSIVE			= {
															{ 'h', 'i', 's' },
															{ 'h', 'e', 'r' }
															};
	/** gender titles. */
	char[][]			GENDERS						= {
															{ 'M', 'a', 'l',
															'e' },
															{ 'F', 'e', 'm',
															'a', 'l', 'e' }
															};
	/** the number 3. */
	int					INT_003						= 3;
	/** the number 4. */
	int					INT_004						= 4;
	/** the number 5. */
	int					INT_005						= 5;
	/** the number 6. */
	int					INT_006						= 6;
	/** the number 7. */
	int					INT_007						= 7;
	/** the number 8. */
	int					INT_008						= 8;
	/** the number 9. */
	int					INT_009						= 9;
	/** the number 10. */
	int					INT_010						= 10;
	/** the number 11. */
	int					INT_011						= 11;
	/** the number 12. */
	int					INT_012						= 12;
	/** the number 13. */
	int					INT_013						= 13;
	/** the number 14. */
	int					INT_014						= 14;
	/** the number 15. */
	int					INT_015						= 15;
	/** the number 16. */
	int					INT_016						= 16;
	/** the number 18. */
	int					INT_018						= 18;
	/** the number 32. */
	int					INT_024						= 24;
	/** the number 25. */
	int					INT_025						= 25;
	/** the number 32. */
	int					INT_032						= 32;
	/** the number 50. */
	int					INT_050						= 50;
	/** the number 64. */
	int					INT_064						= 64;
	/** the number 100. */
	int					INT_100						= 100;
	/** the number 128. */
	int					INT_128						= 128;
	/** the number 255. */
	int					INT_255						= 255;
	/** the number 999. */
	int					INT_999						= 999;
	/** {@link PanningMap} flag indicating action menu is available. */
	int					MAP_FLAG_ALLOW_ACTION_MENU	= 1 << 0;
	/** {@link PanningMap} flag indicating no panning is allowed. */
	int					MAP_FLAG_NO_PANNING			= 1 << 1;
	/**
	 * {@link PanningMap} flag indicating the cursor is hovering over the party.
	 */
	int					MAP_FLAG_PARTY_HOVER		= 1 << 2;
	/** {@link PanningMap} flag indicating action menu is visible. */
	int					MAP_FLAG_SHOW_ACTION_MENU	= 1 << 3;
	/**
	 * {@link PanningMap} mode indicating that panning and clicking is allowed.
	 */
	int					MAP_MODE_00_FREE			= 0;
	/**
	 * {@link PanningMap} mode indicating that panning is not allowed and the
	 * action menu should be displayed.
	 */
	int					MAP_MODE_01_ACTION_MENU		= 1;
	/**
	 * {@link PanningMap} mode indicating that a move selection is taking place.
	 */
	int					MAP_MODE_02_MOVE_SELECTION	= 2;
	/**
	 * {@link PanningMap} mode indicating that a move animation is taking place.
	 * no special shading is drawn on the map.
	 */
	int					MAP_MODE_03_MOVE_ANIMATION	= 3;
	/**
	 * the number of frames allowed to be skipped without drawing to the
	 * monitor.
	 */
	int					MAX_FRAMES_SKIP				= 5;
	/** the maximum width of the tooltip dialog. */
	int					MAX_TOOLTIP_WIDTH			= 300;
	/** the {@link System} newline character. */
	String				NEWLINE						= System.getProperty("line.separator");
	/** the number of times to delay sleeping the run Thread. */
	int					NUM_DELAYS_PER_YIELD		= 16;
	/** the number of pixels the overworld map shifts when panning. */
	int					PAN_SHIFT_PX				= 2;
	/** the length of the overworld map panning delay, in milliseconds. */
	long				PANNING_SHIFT_DELAY			= 31L;
	/** the length of the overworld map panning delay, in milliseconds. */
	long				PANNING_START_DELAY			= 500L;
	/** the screen height. */
	int					SCREEN_HEIGHT				= 600;
	/** the screen width. */
	int					SCREEN_WIDTH				= 800;
	/** string representation of a tab. */
	String				TAB							= "    ";
	/** the length of the tooltip delay, in milliseconds. */
	long				TOOLTIP_DELAY				= 750L;
	/** flag indicating the game is paused. */
	int					VW_00_PAUSED				= 1;
	/** flag indicating a message window is being displayed. */
	int					VW_01_MSGWINDOW				= 1 << 1;
	/** flag indicating the tooltip is being rendered. */
	int					VW_02_TOOLTIP				= 1 << 2;
	/** flag indicating ui controls are blocked. */
	int					VW_03_CONTROLS_BLOCKED		= 1 << GlobalConsts.INT_003;
	/** flag indicating a small message window is being displayed. */
	int					VW_04_SMLMSGWINDOW			= 1 << GlobalConsts.INT_004;
	/** flag indicating the load window is being displayed. */
	int					VW_05_LOADWINDOW			= 1 << GlobalConsts.INT_005;
	/** flag indicating a small options message window is being displayed. */
	int					VW_06_SMLOPTMSGWINDOW		= 1 << GlobalConsts.INT_006;
	/** flag indicating a dialog window is being displayed. */
	int					VW_07_DLG_WINDOW			= 1 << GlobalConsts.INT_007;
	/** the size of each tile in the world map view. */
	int					WORLD_MAP_TILE_SIZE			= 16;
}
